Stored Procedures [dbo].[sp_asi_ARPayment]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@inv_numint4
@pmt_amt_totmoney8
@trans_counterint4
@GLOrgvarchar(5)5
@GLAcctvarchar(50)50
@CashOrgvarchar(5)5
@CashAcctvarchar(50)50
@PseudoAcctARvarchar(50)50
@PseudoAcctPayvarchar(50)50
@pay_typevarchar(10)10
@checknumvarchar(10)10
@CCnumvarchar(25)25
@CCexpirevarchar(10)10
@CCauthorizevarchar(10)10
@CCnamevarchar(40)40
@CCnum_encryptedvarchar(100)100
@CCexpire_encryptedvarchar(100)100
@entered_byvarchar(15)15
@payment_batchvarchar(10)10
@posted_flagint4
@transaction_datedatetime8
@fiscal_periodint4
Permissions
TypeActionOwning Principal
GrantExecuteIMIS
SQL Script

CREATE procedure sp_asi_ARPayment
@inv_num int = 0,
@pmt_amt_tot money = 0,
@trans_counter int = 0,
@GLOrg varchar(5) = '',
@GLAcct varchar(50) = '',
@CashOrg varchar(5) = '',
@CashAcct varchar(50) = '',
@PseudoAcctAR varchar(50) = '',
@PseudoAcctPay varchar(50) = '',
@pay_type varchar(10) = '',
@checknum varchar(10) = '',
@CCnum varchar(25) = '',
@CCexpire varchar(10) = '',
@CCauthorize varchar(10) = '',
@CCname varchar(40) = '',
@CCnum_encrypted varchar(100) = '',
@CCexpire_encrypted varchar(100) = '',  
@entered_by varchar(15) = '',
@payment_batch varchar(10) = '',
@posted_flag int = 2,
@transaction_date datetime,
@fiscal_period int = 0

as


set nocount on



if exists (select * from sysobjects where name = '#Inv_Line_Temp' and xtype = 'U')
         truncate table #Inv_Line_Temp
else
begin
         create table #Inv_Line_Temp (  
                 LINE_NUM int NOT NULL DEFAULT 0,
                 INVOICE_NUM int NOT NULL DEFAULT 0,
                 CHARGES money NOT NULL DEFAULT 0,
                 CREDITS money NOT NULL DEFAULT 0,
                 BALANCE money NOT NULL DEFAULT 0,
                 ADJUSTMENTS money NOT NULL DEFAULT 0,
                 INVLINES_BILL_THRU datetime NULL DEFAULT NULL,
                 BATCH_NUM varchar(10) NOT NULL DEFAULT '',
                 ORG_CODE varchar(5) NOT NULL DEFAULT '',
                 TRANS_NUMBER int NOT NULL DEFAULT 0,
                 OWNER_ORG_CODE varchar(10) NOT NULL DEFAULT '',
                 SOURCE_SYSTEM varchar(10) NOT NULL DEFAULT '',
                 TRANSACTION_DATE datetime NULL DEFAULT NULL,
                 BT_ID varchar(10) NOT NULL DEFAULT '',
                 ST_ID varchar(10) NOT NULL DEFAULT '',
                 DESCRIPTION varchar(255) NOT NULL DEFAULT '',
                 PRODUCT_CODE varchar(31) NOT NULL DEFAULT '',
                 EFFECTIVE_DATE datetime NULL DEFAULT NULL,
                 QUANTITY numeric (17,4) NOT NULL DEFAULT 0,
                 PROD_TYPE varchar(5) NOT NULL DEFAULT '',
                 SUBSC_BILL_THRU datetime NULL DEFAULT NULL,
                 MEMBER_TYPE varchar(5) NOT NULL DEFAULT '',
                 STATUS varchar(5) NOT NULL DEFAULT '',
                 MEMBER_STATUS varchar(5) NOT NULL DEFAULT '',
                 MEMBER_STATUS_DATE datetime NULL DEFAULT NULL,
                 PAID_THRU datetime NULL DEFAULT NULL,
                 MEMBER_RECORD bit NOT NULL default 0,
                 JOIN_DATE datetime NULL DEFAULT NULL,
                 CO_ID varchar(10) NOT NULL DEFAULT '',
                 COMPANY_RECORD bit NOT NULL default 0,
                 ACTIVITY_SEQN int NOT NULL DEFAULT 0,
                 AMT_PAID money NOT NULL DEFAULT 0
                 )
create unique index invlinenum_idx on #Inv_Line_Temp (LINE_NUM)

end


declare @ret_value int
declare @error_hold int

set @ret_value = 1
set @error_hold = 1

declare @application_type int
select @application_type = count(*) from System_Params where ParameterName = 'Dues_Control.ARPaymentApplication'

if @inv_num = 0
         goto error_handler

if @pmt_amt_tot = 0
         goto error_handler

declare @ref_num int

declare @line_num int
declare @charges money
declare @credits money
declare @balance money
declare @adjustments money
declare @invoice_balance money
declare @inv_lines_total money


declare @BT_ID varchar(10)
declare @ST_ID varchar(10)

select @ref_num = REFERENCE_NUM from Invoice where INVOICE_NUM = @inv_num
select @BT_ID = BT_ID from Invoice where INVOICE_NUM = @inv_num
select @ST_ID = ST_ID from Invoice where INVOICE_NUM = @inv_num
select @invoice_balance = BALANCE from Invoice where INVOICE_NUM = @inv_num

declare @pmt_amt money
declare @pmt_amt_tot_no_overpay    money
declare @proportional_amt money

if @pmt_amt_tot > @invoice_balance
         begin
         select @pmt_amt = @invoice_balance
         select @pmt_amt_tot_no_overpay = @invoice_balance
         end
else
         begin
         select @pmt_amt = @pmt_amt_tot
         select @pmt_amt_tot_no_overpay = @pmt_amt_tot
         end

insert into #Inv_Line_Temp (LINE_NUM, INVOICE_NUM, CHARGES, CREDITS, BALANCE, ADJUSTMENTS, INVLINES_BILL_THRU)  
         select LINE_NUM, @inv_num, CHARGES, CREDITS, BALANCE, ADJUSTMENTS, BILL_THRU from Invoice_Lines where REFERENCE_NUM = @ref_num

update #Inv_Line_Temp set
         #Inv_Line_Temp.BATCH_NUM = Invoice.BATCH_NUM,
         #Inv_Line_Temp.ORG_CODE = Invoice.ORG_CODE
from Invoice where REFERENCE_NUM = @ref_num

update #Inv_Line_Temp set
         #Inv_Line_Temp.TRANS_NUMBER = Trans.TRANS_NUMBER,
         #Inv_Line_Temp.OWNER_ORG_CODE = Trans.OWNER_ORG_CODE,
         #Inv_Line_Temp.SOURCE_SYSTEM = Trans.SOURCE_SYSTEM,
         #Inv_Line_Temp.TRANSACTION_DATE = Trans.TRANSACTION_DATE,
         #Inv_Line_Temp.BT_ID = Trans.BT_ID,
         #Inv_Line_Temp.ST_ID = Trans.ST_ID,
         #Inv_Line_Temp.DESCRIPTION = Trans.DESCRIPTION,
         #Inv_Line_Temp.PRODUCT_CODE = Trans.PRODUCT_CODE,
         #Inv_Line_Temp.EFFECTIVE_DATE = Trans.EFFECTIVE_DATE,
         #Inv_Line_Temp.QUANTITY = Trans.QUANTITY,
         #Inv_Line_Temp.PROD_TYPE = Trans.PROD_TYPE
         from Trans where Trans.INVOICE_REFERENCE_NUM = @ref_num
                 and Trans.INVOICE_LINE_NUM = #Inv_Line_Temp.LINE_NUM and JOURNAL_TYPE = 'IN'

update #Inv_Line_Temp set
         #Inv_Line_Temp.SUBSC_BILL_THRU = Subscriptions.BILL_THRU
         from Subscriptions where Subscriptions.INVOICE_REFERENCE_NUM = @ref_num
                 and INVOICE_LINE_NUM = #Inv_Line_Temp.LINE_NUM

update #Inv_Line_Temp set
                 #Inv_Line_Temp.MEMBER_TYPE = Name.MEMBER_TYPE,
                 #Inv_Line_Temp.STATUS = Name.STATUS,        
                 #Inv_Line_Temp.MEMBER_STATUS = Name.MEMBER_STATUS,
                 #Inv_Line_Temp.MEMBER_STATUS_DATE = Name.MEMBER_STATUS_DATE,
                 #Inv_Line_Temp.PAID_THRU = Name.PAID_THRU,
                 #Inv_Line_Temp.MEMBER_RECORD = Name.MEMBER_RECORD,
                 #Inv_Line_Temp.JOIN_DATE = Name.JOIN_DATE,
                 #Inv_Line_Temp.CO_ID = Name.CO_ID,
                 #Inv_Line_Temp.COMPANY_RECORD = Name.COMPANY_RECORD
         from Name where Name.ID = #Inv_Line_Temp.ST_ID

select @inv_lines_total = sum (CHARGES) from #Inv_Line_Temp

declare @pmt_tots_proportional money
set @pmt_tots_proportional = 0


declare line_cursor cursor for
         select LINE_NUM, CHARGES, CREDITS, BALANCE, ADJUSTMENTS      
         from #Inv_Line_Temp where CHARGES <> 0 order by LINE_NUM
open line_cursor

fetch next from line_cursor into @line_num, @charges, @credits, @balance, @adjustments
while @@FETCH_STATUS = 0 and abs(@pmt_amt) > 0
begin
         if @application_type = 0
                 begin
                 if @balance >= @pmt_amt
                          begin
                          update #Inv_Line_Temp set
                                   CREDITS = CREDITS + @pmt_amt,
                                   BALANCE = BALANCE - @pmt_amt,
                                   AMT_PAID = @pmt_amt
                          where current of line_cursor
                          set @pmt_amt = 0
                          end
                 else if @pmt_amt > @balance
                          begin
                          update #Inv_Line_Temp set
                                   CREDITS = CREDITS + @balance,
                                   BALANCE = 0,
                                   AMT_PAID = AMT_PAID + @balance
                          where current of line_cursor
                          set @pmt_amt = @pmt_amt - @balance
                          end
                 end
         else if @application_type = 1
                 begin
                          if @charges <> 0
                                   begin
                                   if @pmt_amt_tot < @inv_lines_total          
                                            begin
                                                     set @proportional_amt = round (@pmt_amt_tot_no_overpay * @charges / @inv_lines_total, 2)
                                                    update #Inv_Line_Temp set
                                                             CREDITS = CREDITS + @proportional_amt,
                                                             BALANCE = BALANCE - @proportional_amt,
                                                             AMT_PAID = @proportional_amt
                                                    where current of line_cursor
                                                     set @pmt_tots_proportional = @pmt_tots_proportional + @proportional_amt
                                                    set @pmt_amt = @pmt_amt - @proportional_amt
                                            end
                                   else
                                            begin
                                                    update #Inv_Line_Temp set
                                                             CREDITS = CREDITS + @balance,
                                                             BALANCE = 0,
                                                             AMT_PAID = AMT_PAID + @balance
                                                    where current of line_cursor
                                                    set @pmt_amt = @pmt_amt - @balance
                                            end
                                   end
                 end

         fetch next from line_cursor into @line_num, @charges, @credits, @balance, @adjustments
end

close line_cursor
deallocate line_cursor

if @application_type = 1 and abs(@pmt_amt_tot) < @inv_lines_total  
         begin
                 declare @pmt_amt_diff money
                 set @pmt_amt_diff = @pmt_amt_tot - @pmt_tots_proportional

                 if @pmt_amt_diff <> 0
                          update #Inv_Line_Temp set
                                   CREDITS = CREDITS + @pmt_amt_diff,
                                   BALANCE = BALANCE - @pmt_amt_diff
                                   where BALANCE = (select max (BALANCE) from #Inv_Line_Temp)
         end

declare @activity_count int
select @activity_count = count(*) from #Inv_Line_Temp where AMT_PAID <> 0

declare @activity_counter int

if not exists (select COUNTER_NAME from Counter where COUNTER_NAME='Activity')        
         insert Counter (COUNTER_NAME, LAST_VALUE) values ('Activity',0)  

update Counter set
                 LAST_VALUE=LAST_VALUE +@activity_count ,               
                 LAST_UPDATED=getdate(),
                 UPDATED_BY=user_name()         
         where COUNTER_NAME= 'Activity'

select @activity_counter = LAST_VALUE from Counter where COUNTER_NAME = 'Activity'


create table #tmp_seqn (
         LINE_NUM int NOT NULL DEFAULT 0,
         SEQN_TMP int NOT NULL DEFAULT 0,
         SEQN_TMP_IDENT int IDENTITY (1, 1)
         )
create unique index invlinenum_idx on #tmp_seqn (LINE_NUM)

insert #tmp_seqn (LINE_NUM)
         select #Inv_Line_Temp.LINE_NUM
         from #Inv_Line_Temp
         where AMT_PAID <> 0
update #tmp_seqn set SEQN_TMP = SEQN_TMP_IDENT + @activity_counter - @activity_count

update #Inv_Line_Temp set
         ACTIVITY_SEQN = #tmp_seqn.SEQN_TMP
         from #tmp_seqn
         where #Inv_Line_Temp.LINE_NUM = #tmp_seqn.LINE_NUM

update Invoice set
         CREDITS = CREDITS + @pmt_amt_tot_no_overpay,
         BALANCE = BALANCE - @pmt_amt_tot_no_overpay
where REFERENCE_NUM = @ref_num
if @@error <> 0
         begin
         set @error_hold = @@error
         goto error_handler
         end

update Invoice_Lines set
         Invoice_Lines.CREDITS =   Invoice_Lines.CREDITS + #Inv_Line_Temp.AMT_PAID,
         Invoice_Lines.BALANCE = Invoice_Lines.BALANCE - #Inv_Line_Temp.AMT_PAID
         from Invoice_Lines, #Inv_Line_Temp
         where Invoice_Lines.REFERENCE_NUM = @ref_num and
                 Invoice_Lines.LINE_NUM = #Inv_Line_Temp.LINE_NUM
if @@error <> 0
         begin
         set @error_hold = @@error
         goto error_handler
         end

update Subscriptions set
         PAID_THRU = #Inv_Line_Temp.SUBSC_BILL_THRU,
         Subscriptions.BALANCE = Subscriptions.BALANCE - #Inv_Line_Temp.AMT_PAID,
         PAYMENT_AMOUNT = PAYMENT_AMOUNT + #Inv_Line_Temp.AMT_PAID,
         BEGIN_DATE = #Inv_Line_Temp.EFFECTIVE_DATE,
         CONTINUOUS_SINCE = #Inv_Line_Temp.EFFECTIVE_DATE,
         PAYMENT_DATE = @transaction_date,
         LAST_PAID_THRU = #Inv_Line_Temp.SUBSC_BILL_THRU,
         COPIES_PAID = BILL_COPIES,
         LTD_PAYMENTS = LTD_PAYMENTS + #Inv_Line_Temp.AMT_PAID
         from #Inv_Line_Temp
         where Subscriptions.INVOICE_REFERENCE_NUM = @ref_num
                 and Subscriptions.INVOICE_LINE_NUM=#Inv_Line_Temp.LINE_NUM
if @@error <> 0
         begin
         set @error_hold = @@error
         goto error_handler
         end

insert into Activity
                 (SEQN, ID,ACTIVITY_TYPE, PRODUCT_CODE,
                 OTHER_CODE,
                 TRANSACTION_DATE, DESCRIPTION,
                  EFFECTIVE_DATE, THRU_DATE, AMOUNT, SOURCE_SYSTEM, QUANTITY, ORIGINATING_TRANS_NUM, ORG_CODE,
                 OTHER_ID,CO_ID,MEMBER_TYPE)
         select ACTIVITY_SEQN, BT_ID,'DUES', PRODUCT_CODE,
                 (select PROD_TYPE from Product where Product.PRODUCT_CODE = #Inv_Line_Temp.PRODUCT_CODE),
                 TRANSACTION_DATE, DESCRIPTION,
                  EFFECTIVE_DATE, SUBSC_BILL_THRU, AMT_PAID, 'AR', QUANTITY, TRANS_NUMBER, OWNER_ORG_CODE,
                 ST_ID, CO_ID,MEMBER_TYPE
                 from #Inv_Line_Temp
                 where ACTIVITY_SEQN <> 0
if @@error <> 0
         begin
         set @error_hold = @@error
         goto error_handler
         end

update Batch set TRANS_COUNT = TRANS_COUNT + 1, TRANS_CASH = TRANS_CASH + @pmt_amt_tot  
         where BATCH_NUM = @payment_batch
if @@error <> 0
         begin
         set @error_hold = @@error
         goto error_handler
         end

update Name set
         PAID_THRU = #Inv_Line_Temp.SUBSC_BILL_THRU
         from #Inv_Line_Temp
         where Name.ID=#Inv_Line_Temp.ST_ID
if @@error <> 0
         begin
         set @error_hold = @@error
         goto error_handler
         end


declare @trans_line_ctr int
select @trans_line_ctr = 1


if @pmt_amt_tot > @invoice_balance
         begin

                 declare @invoice_ref_num int
                  if not exists (select COUNTER_NAME from Counter where COUNTER_NAME='Invoice_Ref')        
                          insert Counter (COUNTER_NAME, LAST_VALUE) values ('Invoice_Ref',0)  
                 update Counter set
                                   LAST_VALUE=LAST_VALUE + 1,               
                                   LAST_UPDATED=getdate(),
                                   UPDATED_BY=user_name()         
                          where COUNTER_NAME= 'Invoice_Ref'
                 select @invoice_ref_num = LAST_VALUE from Counter where COUNTER_NAME = 'Invoice_Ref'

                 declare @overpay_amt money
                 select @overpay_amt = @pmt_amt_tot - @invoice_balance
                 
                 declare @prepay_desc varchar(100)
                  select @prepay_desc = 'Dues Overpayment: ' + convert (varchar(2),datepart (mm, getdate())) + '/'  
                                            + convert (varchar(2),datepart (dd, getdate())) + '/'  
                                            + convert (varchar(4),datepart (yyyy, getdate()))
                                            + ' -- ' + convert (varchar(20), @invoice_ref_num)

                 declare @AR_acct varchar(100)
                 select @AR_acct = AR_ACCOUNT from Invoice where INVOICE_NUM = @inv_num

                 insert into Invoice
                          (BT_ID, ST_ID, REFERENCE_NUM, INVOICE_NUM, INVOICE_DATE, EFFECTIVE_DATE, ORG_CODE, SOURCE_SYSTEM,
                          DESCRIPTION, CUSTOMER_REFERENCE, TERMS_CODE, AR_ACCOUNT, SOURCE_CODE, BATCH_NUM, INVOICE_TYPE,
                          CREDITS, BALANCE)
                  values ( @BT_ID, @ST_ID, @invoice_ref_num, 0, @transaction_date, @transaction_date, @CashOrg, 'AR',
                          @prepay_desc, '', '', @AR_acct, '', @payment_batch, '',
                          @overpay_amt, 0.00 - @overpay_amt )

                 insert into Trans
                          (TRANS_NUMBER, LINE_NUMBER, SUB_LINE_NUMBER, BATCH_NUM, OWNER_ORG_CODE, SOURCE_SYSTEM, JOURNAL_TYPE,
                          TRANSACTION_TYPE, TRANSACTION_DATE, BT_ID, ST_ID, INVOICE_REFERENCE_NUM,
                          DESCRIPTION, CUSTOMER_NAME, CUSTOMER_REFERENCE, REFERENCE_1, SOURCE_CODE, PRODUCT_CODE,
                          EFFECTIVE_DATE, PAID_THRU, MONTHS_PAID,
                          FISCAL_PERIOD, DEFERRAL_MONTHS, AMOUNT, ADJUSTMENT_AMOUNT,
                          PSEUDO_ACCOUNT, GL_ACCT_ORG_CODE, GL_ACCOUNT, DEFERRED_GL_ACCOUNT,
                          INVOICE_CHARGES, INVOICE_CREDITS,
                          QUANTITY, UNIT_PRICE, PAYMENT_TYPE, CHECK_NUMBER, CC_NUMBER, CC_EXPIRE, CC_AUTHORIZE,
                          CC_NAME, TERMS_CODE, ACTIVITY_SEQN, POSTED, PROD_TYPE, ACTIVITY_TYPE, ACTION_CODES, TICKLER_DATE,
                          DATE_ENTERED, ENTERED_BY, INSTALL_BILL_DATE, TAXABLE_VALUE, SOLICITOR_ID, MERGE_CODE,
                          SALUTATION_CODE, SENDER_CODE, IS_MATCH_GIFT, MATCH_GIFT_TRANS_NUM,
                           INVOICE_LINE_NUM,MATCH_ACTIVITY_SEQN,MEM_TRIB_ID,RECEIPT_ID,DO_NOT_RECEIPT,ENCRYPT_CC_NUMBER,ENCRYPT_CC_EXPIRE)
                 select
                          @trans_counter, @trans_line_ctr, 1, @payment_batch, @CashOrg, 'AR','PAY',
                          'AR', @transaction_date, @BT_ID, @ST_ID, @invoice_ref_num,
                          @prepay_desc, '', '', 'Inv# R0', '', '',
                          NULL, NULL, 0,
                          @fiscal_period, 0, -@overpay_amt, 0,
                          @PseudoAcctAR, @GLOrg, @GLAcct, '',
                          0, @overpay_amt,
                          0.0000, 0.00, '', @checknum, @CCnum, @CCexpire, @CCauthorize,
                          @CCname, '', 0, @posted_flag,'', '', '', NULL,
                          getdate (),@entered_by, NULL, 0.00,'','',
                          '','', 0, 0,
                          1, 0, '', 0, 0,@CCnum_encrypted, @CCexpire_encrypted

                 if @@error <> 0
                          begin
                          set @error_hold = @@error
                          goto error_handler
                          end

                 select @trans_line_ctr = @trans_line_ctr + 1
         end


insert into Trans
         (TRANS_NUMBER, LINE_NUMBER, SUB_LINE_NUMBER, BATCH_NUM, OWNER_ORG_CODE, SOURCE_SYSTEM, JOURNAL_TYPE,
         TRANSACTION_TYPE, TRANSACTION_DATE, BT_ID, ST_ID, INVOICE_REFERENCE_NUM, DESCRIPTION, CUSTOMER_NAME, CUSTOMER_REFERENCE,
         REFERENCE_1, SOURCE_CODE, PRODUCT_CODE, EFFECTIVE_DATE, PAID_THRU, MONTHS_PAID,
         FISCAL_PERIOD, DEFERRAL_MONTHS, AMOUNT, ADJUSTMENT_AMOUNT,
         PSEUDO_ACCOUNT, GL_ACCT_ORG_CODE, GL_ACCOUNT, DEFERRED_GL_ACCOUNT,
         INVOICE_CHARGES, INVOICE_CREDITS, QUANTITY, UNIT_PRICE, PAYMENT_TYPE, CHECK_NUMBER, CC_NUMBER, CC_EXPIRE, CC_AUTHORIZE, CC_NAME, TERMS_CODE, ACTIVITY_SEQN,
         POSTED, PROD_TYPE, ACTIVITY_TYPE, ACTION_CODES, TICKLER_DATE, DATE_ENTERED, ENTERED_BY, INSTALL_BILL_DATE, TAXABLE_VALUE,
         SOLICITOR_ID, MERGE_CODE, SALUTATION_CODE, SENDER_CODE, IS_MATCH_GIFT, MATCH_GIFT_TRANS_NUM,
         INVOICE_LINE_NUM,MATCH_ACTIVITY_SEQN,MEM_TRIB_ID,RECEIPT_ID,DO_NOT_RECEIPT,ENCRYPT_CC_NUMBER,ENCRYPT_CC_EXPIRE)
         select
         @trans_counter, @trans_line_ctr, #Inv_Line_Temp.LINE_NUM, @payment_batch, #Inv_Line_Temp.OWNER_ORG_CODE,
         'AR','PAY','AR',@transaction_date, #Inv_Line_Temp.BT_ID,#Inv_Line_Temp.ST_ID, @ref_num, '','','',
         'Inv# ' + convert (varchar(20), @ref_num), '','',NULL,#Inv_Line_Temp.INVLINES_BILL_THRU,0,
         @fiscal_period, 0, -(#Inv_Line_Temp.AMT_PAID), 0,
         @PseudoAcctAR, @GLOrg, @GLAcct,'',
         0, #Inv_Line_Temp.AMT_PAID,
         0.0000, 0.00,'', @checknum, @CCnum, @CCexpire, @CCauthorize,
         @CCname, '', #Inv_Line_Temp.ACTIVITY_SEQN, @posted_flag,'', '', '', NULL, getdate (),@entered_by,
         NULL, 0.00,'','','','', 0, 0, #Inv_Line_Temp.LINE_NUM, 0, '', 0, 0,@CCnum_encrypted, @CCexpire_encrypted
         from #Inv_Line_Temp
         where #Inv_Line_Temp.AMT_PAID <> 0

if @@error <> 0
         begin
         set @error_hold = @@error
         goto error_handler
         end

select @trans_line_ctr = @trans_line_ctr + 1

insert into Trans
         (TRANS_NUMBER, LINE_NUMBER, SUB_LINE_NUMBER, BATCH_NUM, OWNER_ORG_CODE, SOURCE_SYSTEM, JOURNAL_TYPE, TRANSACTION_TYPE, TRANSACTION_DATE, BT_ID, ST_ID, INVOICE_REFERENCE_NUM, DESCRIPTION, CUSTOMER_NAME,
         CUSTOMER_REFERENCE, REFERENCE_1, SOURCE_CODE, PRODUCT_CODE, EFFECTIVE_DATE, PAID_THRU, MONTHS_PAID,
         FISCAL_PERIOD, DEFERRAL_MONTHS, AMOUNT, ADJUSTMENT_AMOUNT,
         PSEUDO_ACCOUNT, GL_ACCT_ORG_CODE, GL_ACCOUNT, DEFERRED_GL_ACCOUNT,
         INVOICE_CHARGES, INVOICE_CREDITS, QUANTITY, UNIT_PRICE, PAYMENT_TYPE, CHECK_NUMBER, CC_NUMBER, CC_EXPIRE, CC_AUTHORIZE, CC_NAME, TERMS_CODE,
         ACTIVITY_SEQN, POSTED, PROD_TYPE, ACTIVITY_TYPE, ACTION_CODES, TICKLER_DATE, DATE_ENTERED, ENTERED_BY,
         INSTALL_BILL_DATE, TAXABLE_VALUE, SOLICITOR_ID, MERGE_CODE, SALUTATION_CODE, SENDER_CODE, IS_MATCH_GIFT,
         MATCH_GIFT_TRANS_NUM, INVOICE_LINE_NUM,MATCH_ACTIVITY_SEQN,MEM_TRIB_ID,RECEIPT_ID,DO_NOT_RECEIPT,
         ENCRYPT_CC_NUMBER,ENCRYPT_CC_EXPIRE)
         select
         @trans_counter, @trans_line_ctr, 1, @payment_batch, @CashOrg,
         'AR','PAY','PAY',@transaction_date, @BT_ID, @ST_ID, 0, '','','',
         '', '','',NULL, NULL,0, @fiscal_period, 0, @pmt_amt_tot, 0,
         @PseudoAcctPay, @CashOrg, @CashAcct,'',
         0, 0,
         0.0000, 0.00,'', @checknum, @CCnum, @CCexpire, @CCauthorize,
         @CCname, '', 0, @posted_flag,'', '', '', NULL, getdate (),@entered_by,
         NULL, 0.00,'','','','', 0, 0, 0, 0, '', 0, 0,@CCnum_encrypted, @CCexpire_encrypted
if @@error <> 0
         begin
         set @error_hold = @@error
         goto error_handler
         end

set @ret_value = 0
goto endit

error_handler:
set @ret_value = @error_hold

endit:
select @ret_value

set nocount off
return


GO
GRANT EXECUTE ON  [dbo].[sp_asi_ARPayment] TO [IMIS]
GO
Uses